<?php
/*
 * estudo de padrões de projetos com php
 * author: fabricio s costa
 * version: 1.0
 * site: http://fabriciojf.com
 */

require_once('com/fabriciojf/action/Action.class.php');
require_once('com/fabriciojf/persistence/DaoGenerico.class.php');
require_once('com/fabriciojf/persistence/ConfigDAO.class.php');
require_once('com/fabriciojf/persistence/UsuarioDAO.class.php');
require_once('com/fabriciojf/model/Usuario.class.php');
require_once('com/fabriciojf/include/Mail.class.php');

class UserSaveAction implements Action {
    public function execute() {

        $configDao = new ConfigDAO();
        $urlBase = $configDao->getRegistro('urlBase')->getValor();
        $urlOrigem = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);

        if ($urlOrigem != $urlBase) {
            echo 'Houve um erro ao logar no servidor!';
        } else {

            if ($configDao->getRegistro('habilitarconta')->getValor() == 'true') {
                $nick = $_POST['nick'];
                $senha = $_POST['senha'];
                $email = $_POST['email'];

                $resposta = $_POST['resposta'];
                $no1 = $_POST['no1'];
                $no2 = $_POST['no2'];

                $usuarioDao = new UsuarioDAO();
                if ($usuarioDao->findForNick($nick)) {
                    $_POST['mensagem'] = 'Este Nick j&aacute; est&aacute; sendo usado. Escolha outro!';
                    $_POST['nick'];
                    $_POST['email'];
                    FrontController::sendRedirect('UserCreate');
                } else if ($usuarioDao->findForEmail($email)) {
                    $_POST['mensagem'] = 'Este Email j&aacute; est&aacute; sendo usado. Digite outro!';
                    $_POST['nick'];
                    $_POST['email'];
                    FrontController::sendRedirect('UserCreate');
                } else if (!($no1 + $no2 == $resposta)) {
                    $_POST['mensagem'] = 'A soma n&atilde;o confere! Tente novamente';
                    $_POST['nick'];
                    $_POST['email'];
                    FrontController::sendRedirect('UserCreate');
                } else if (strstr($email, "@") == false) {
                    $_POST['mensagem'] = 'Digite um email v&aacute;lido!';
                    $_POST['nick'];
                    $_POST['email'];
                    FrontController::sendRedirect('UserCreate');
                } else if (($nick) and ($senha) and ($email)) {
                    $usuario = new Usuario();
                    $usuario->setNick($nick);
                    $usuario->setPsw($senha);
                    $usuario->setEmail($email);
                    $usuario->setRole('usuario');

                    if (Dao::save($usuario, 'Usuario')) {
                        $remetente = 'administracao@jumbocms.com';
                        $destinatario = 'fabriciojf@gmail.com';
                        $assunto = 'Novo Usuario Adicionado no JumboCms';
                        $conteudo = 'Dados:<br />';
                        $conteudo .= '<b>Nick:</b> ' . $nick . '<br /><b>Email</b>: ' .$email;
                        Mail::enviar($remetente, $destinatario, $assunto, $conteudo);

                        $remetente = 'administracao@jumbocms.com';
                        $destinatario = $email;
                        $assunto = 'Bem vindo ao portal fabriciojf.com';
                        $conteudo = 'Bem Vindo ' . $nick . '!<br />';
                        $conteudo .= 'Sua Conta foi criada com sucesso!';
                        Mail::enviar($remetente, $destinatario, $assunto, $conteudo);

                        FrontController::sendRedirect('Login');
                    } else {
                        $_POST['mensagem'] = 'O sistema entrou problemas ao criar o usuario!';
                        $_POST['nick'];
                        $_POST['email'];
                        FrontController::sendRedirect('UserCreate');
                    }
                } else {
                    $_POST['mensagem'] = 'Todos os Campos s&atilde;o Obrigat&oacute;rios';
                    $_POST['nick'];
                    $_POST['email'];
                    FrontController::sendRedirect('UserCreate');
                }
            } else {
                FrontController::sendRedirect('Home');
            }
        }
    }
}
?>
